package com.itstyle.mytest.service;

import com.itstyle.seckill.common.entity.Result;


public interface IMyTestService {
    /**
     * /秒杀零
     * @param seckillId
     * @param userId
     * @return
     */
    Result startSeckil(long seckillId, long userId);

    /**
     * 秒杀 一、程序锁
     * @param seckillId
     * @param userId
     * @return
     */
    Result startSeckilLock(long seckillId,long userId);

    /**
     * 秒杀 二、程序锁AOP
     * @param seckillId
     * @param userId
     * @return
     */
    Result startSeckilAopLock(long seckillId,long userId);

    /**
     * 秒杀 三、数据库悲观锁（实现一）
     * @param seckillId
     * @param userId
     * @return
     */
    Result startDBPCC_ONE(long seckillId, long userId);

    /**
     * 秒杀 四、数据库悲观锁（实现二）
     * @param seckillId
     * @param userId
     * @return
     */
    Result startDBPCC_TWO(long seckillId, long userId);

    /**
     * 秒杀五（数据库乐观锁
     * @param seckillId
     * @param userId
     * @return
     */
    Result startDBOCC(long seckillId, long userId);
    Result print();
}
